package com.campus.campusdelivery.service;

import com.campus.campusdelivery.dto.MenuItemDto;
import com.campus.campusdelivery.dto.MenuItemRequest;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

import java.util.List;

public interface MenuItemService {
    
    MenuItemDto getMenuItemById(Long id);
    
    List<MenuItemDto> getMenuItemsByMerchant(Long merchantId);
    
    List<MenuItemDto> getAvailableMenuItemsByMerchant(Long merchantId);
    
    Page<MenuItemDto> getMenuItemsByCategory(Long categoryId, Pageable pageable);
    
    Page<MenuItemDto> searchMenuItems(String keyword, Pageable pageable);
    
    MenuItemDto createMenuItem(Long merchantId, MenuItemRequest request);
    
    MenuItemDto updateMenuItem(Long id, MenuItemRequest request);
    
    void deleteMenuItem(Long id);
    
    void toggleMenuItemAvailability(Long id);
    
    void updateMenuItemStock(Long id, Integer stock);
    
    Long getMenuItemsCount();
}
